package com.app.miwawa.api.portal.service.dao;

import java.util.List;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Repository;

import com.app.miwawa.api.system.entity.view.Account;

/**
 * 数据接口
 * <p>描述: 工作台账</p>
 * <p>Company: Professional</p>
 * @author chanlong(陈龙)
 * @date 2016年2月12日 下午10:56:10
 * @version 1.0.2016
 */
@Repository("dashboardDao")
public class DashboardDao{
	
	@Autowired
	private JdbcTemplate jdbc;
	
	/**
	 * 销售－统计当月客户数量.
	 * @param account
	 * @return
	 * @author chanlong(陈龙)
	 * @date 2016年2月11日 下午8:20:52
	 */
	public List<Map<String, Object>> pro_salescount(Account account){
		StringBuilder sql = new StringBuilder("call pro_saas_salescount('%Y-%m', null, ?);");

		return jdbc.queryForList(sql.toString(), account.getId());
	}
	
	/**
	 * 销售－销售排行.
	 * @return
	 * @author chanlong(陈龙)
	 * @date 2016年2月13日 上午12:32:43
	 */
	public List<Map<String, Object>> pro_salesranking(){
		StringBuilder sql = new StringBuilder("call pro_saas_salesranking('%m', null);");

		return jdbc.queryForList(sql.toString());
	}
	
	/**
	 * 教务－到课率.
	 * @return
	 * @author chanlong(陈龙)
	 * @date 2016年2月13日 上午12:32:43
	 */
	public List<Map<String, Object>> pro_checkrate(Account account){
		StringBuilder sql = new StringBuilder("call pro_saas_checkrate(?, ?);");
		Map<String,String> params = account.getParams();
		return jdbc.queryForList(sql.toString(), params.get("fromDate"), params.get("overDate"));
	}
	
	/**
	 * 教务－电访数.
	 * @return
	 * @author chanlong(陈龙)
	 * @date 2016年2月13日 上午12:32:43
	 */
	public List<Map<String, Object>> pro_calloncount(Account account){
		StringBuilder sql = new StringBuilder("call pro_saas_calloncount('%m', null, ?);");

		return jdbc.queryForList(sql.toString(), account.getId());
	}
	
	/**
	 * 教务－排课表.
	 * @param account
	 * @return
	 * @author chanlong(陈龙)
	 * @date 2016年5月11日 下午4:13:35
	 */
	public List<Map<String, Object>> pro_schedule(Account account){
		StringBuilder sql = new StringBuilder("call pro_saas_schedule();");

		return jdbc.queryForList(sql.toString());
	}
	
	/**
	 * 教务－消课量.
	 * @return
	 * @author chanlong(陈龙)
	 * @date 2016年2月13日 上午12:32:43
	 */
	public List<Map<String, Object>> sql_consuming(){
		StringBuilder sql = new StringBuilder("select sum(useing) usedAmount, sum(rested) surplusAmount, sum(useingPrice+restedPrice) totalAmount from vb_contract where status = '0' and invalid = 'F' and item = '早教';");

		return jdbc.queryForList(sql.toString());
	}

	/**
	 * 领导－全年销售统计.
	 * @return
	 * @author chanlong(陈龙)
	 * @date 2016年2月16日 下午11:39:09
	 */
	public List<Map<String, Object>> pro_yearofsales() {
		StringBuilder sql = new StringBuilder("call pro_saas_yearofsales();");

		return jdbc.queryForList(sql.toString());
	}
	
}
